package com.ftg.learn.chapter02;

import java.util.Scanner;

/**
 * 学习一个java里面的方法
 *
 * @author kangjx
 * @version 1.0
 * @date 2023/4/15 下午2:14
 */
public class LearnMethod01 {

    /**
     * 全局变量
     */
    int a = 9;

    //函数 定义函数 (方法)

    /**
     * 通用方法
     *
     * @ 访问修饰符 个人(.java)     二人世界 (没有)(本类本包)          三口之家(本类本包子类)      所有人
     * private  default|friendly                       protected                public
     * @修饰符1 static 静态 (静态只能访问静态)
     * @修饰符2 final 最终不可变(这个为方法不能被重写)
     * @返回值类型 基本类型 | void (有返回值，但是值为空,return 可以省略)
     * @名称 首字母小写
     */
//    [访问修饰符] [修饰符1] [修饰符2] [返回值类型] [名称](形参类型 形参名称,形参类型 形参名称...){
//
//        return 返回值类型;
//    }

    /**
     * 两数之和
     *
     *  重用性 (); -->
     *
     * @param x
     * @param y
     * @return
     */
    public static int add(int x, int y) {
        return x + y;
    }

    /**
     * 一个方法可以调用其它方法
     */
    public static int add(int x, int y, int z) {
        return add(add(x, y), z);
    }

    /**
     * 数组 ： 数（数据）  组 （一个或者多个）
     * 类型 []
     * int[] as = new int[4];  [1,2,3,4]
     * as[0] = 1;
     * as[1] = 2;
     * as[2] = 3;
     * as[3] = 4;
     * as[索引]
     *
     *  int... z 可变参数相当于一个长度可以为0的或者231-1的数组
     *  int[] z = new int[0];
     *  int[] z = new int[5];
     * @param z
     * @return
     */
    public static int add(int... z){
        int sum = 0;
        for(int i = 0;i < z.length;i++){
            sum += z[i];
        }
        return sum;
    }

    /**
     * 方法里面调方法自己  (终止条件)
     *  分治 :  动规 ： 贪心 : (.....)
     * @param n
     * @return
     */
    public static int addRecursive(int n) {
        return (n == 10 ? 10 : n + addRecursive(n + 1));
    }

    //5  5 + addRecursive(5-1);
    //   5 + 4 + addRecursive(4-1);
    //   5 + 4 + 3 + addRecursive(3-1)--------

    /**
     * 主函数 主方法
     *
     * @param args
     */
    public static void main(String[] args) {
        System.out.println(addRecursive(1));

        // 需求分析 : 52 4 40 10 -40  定义  ：  十位 1红桃  2 方块  3 黑桃  4 梅花
        for (int i = 10, len = 50; i < len; i++) {
            //选择结构
            int bit = i % 10;
            int ten = i / 10;
            String card = "";
            if (ten == 1) {
                card = "红桃" + (bit + 1);
            }else if(ten == 2){
                card = "方块" + (bit + 1);
            }else if(ten == 3){
                card = "黑桃" + (bit + 1);
            }else{
                card = "梅花" + (bit + 1);
            }
            System.out.printf("当前数为%d,个数为%d,十位为%d,这是一张%s\n", i, bit, ten, card);
        }
        //输入函数
        // 表示可以让人与计算机控制台交互
        Scanner scan = new Scanner(System.in);

        System.out.println("请赌神抽牌");

        int first = scan.nextInt();

        int bit = first % 10;
        int ten = first / 10;

        String card = "";
        if (ten == 1) {
            card = "红桃" + (bit + 1);
        }else if(ten == 2){
            card = "方块" + (bit + 1);
        }else if(ten == 3){
            card = "黑桃" + (bit + 1);
        }else{
            card = "梅花" + (bit + 1);
        }

        System.out.println(card);

        System.out.println("请赌神抽牌22222");
        int second = scan.nextInt();

        int bit1 = second % 10;
        int ten1 = second / 10;

        String card1 = "";
        if (ten1 == 1) {
            card1 = "红桃" + (bit1 + 1);
        }else if(ten1 == 2){
            card1 = "方块" + (bit1 + 1);
        }else if(ten1 == 3){
            card1 = "黑桃" + (bit1 + 1);
        }else{
            card1 = "梅花" + (bit1 + 1);
        }

        System.out.println(card1);

        System.out.println(bit > bit1 ?"赌神1胜":"赌神2胜");

    }


}
